![]() |
![]() ![]() |
![]() |
![]()
Post
#321
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Huh, z tego co pamiętam, to dało się też niektóre znaki zapisać korzystając z "wysokich kodów Unicode", a to już jest ciężko odfiltrować. (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#322
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wszelkie te zabezpieczenia operujące na słownikach są kretyńskie zawsze można większość z nich ominąć za pomocą komentarzy. Nawet jeśli filtrujesz np. UNION mogę napisać U/**/N/**/I/**/O/**/N albo w hex albo wykorzystując funkcję char() @SHiP, zdaje się, że masz pisać książkę o bezpieczeństwie www, więc powiedz mi... gdzie te Twoje "U/**/N/**/I/**/O/**/N" zadziała? |
|
|
![]()
Post
#323
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
@pyro: ok trochę się zapędziłem. Sprawdziłem i w nowszych wersjach MySQL to nie działa.
W oracle można użyć czegoś takiego jak execute immediate i tam umieścić zapytanie zapisane w taki sposób jak podałem wyżej i ono zadziała. W MS SQL można użyć exec() A jako że piszemy o mysql(chyba?) to za pomocą /**/ można w nim ładnie pousuwać białe znaki np. takie zapytanie nie ma ani jednej spacji a działa:
EDIT: albo coś jeszcze bardziej fajnego
To działa(sic!) Ten post edytował SHiP 16.07.2010, 23:27:00 |
|
|
![]()
Post
#324
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 1.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wszelkie te zabezpieczenia operujące na słownikach są kretyńskie zawsze można większość z nich ominąć za pomocą komentarzy. Nawet jeśli filtrujesz np. UNION mogę napisać U/**/N/**/I/**/O/**/N albo w hex albo wykorzystując funkcję char() Jak niby wykorzystać funkcję char() ? *, char można usuwać, a przed hex da się też zabezpieczyć. Przyznaję, pomysł trochę nie za dobry ale można zrobić z tego log (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował H4eX 17.07.2010, 13:38:33 |
|
|
![]()
Post
#325
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#326
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
EDIT: albo coś jeszcze bardziej fajnego
To działa(sic!) To zapytanie akurat nie działa (IMG:style_emoticons/default/winksmiley.jpg) (IMG:style_emoticons/default/cool.gif) |
|
|
![]()
Post
#327
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
@darko: jaką masz wersję mysql? I czy masz w wybranej bazie tabelę news ;]
U siebie mam mysql Ver 14.14 Distrib 5.1.36, for suse-linux-gnu (x86_64) using readline 6.0 i dziala... |
|
|
![]()
Post
#328
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
5.0.51a-24+lenny2+spu1 (Linux debian 2.6.30-bpo.1-686 #1 SMP Mon Aug 17 14:57:26 UTC 2009 i686 GNU/Linux) i nie hula. Oczywiście podałem nazwę istniejącej tabeli w bazie (IMG:style_emoticons/default/smile.gif) I zwraca całe nic (nie ma błędów po prostu nie zwraca żądnego wyniku, a dane w tabeli są na 100%).
Ten post edytował darko 17.07.2010, 13:54:06 |
|
|
![]()
Post
#329
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Hmm no to dziwne. Wygląda na to, że starsza werjsa inaczej to interpretuje lub masz pustą tabelę. A coś takiego
Cytat mysql> /*!SELECT*//*!'PHP'*/; +-----+ | PHP | +-----+ | PHP | +-----+ 1 row in set (0.00 sec) (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#330
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wydzielcie ten nasz OT, jak możecie
/*!SELECT*//*!'advisors'*/; to samo w mysql-query-browser v. 1.2.12: Query executed in 0:00.0250. Query finished To samo w phpmyadmin (phpMyAdmin - 2.11.8.1deb5+lenny3): /*!SELECT*//*!'advisors'*/ Pokaż rekordy 0 - 0 (1 wszystkich, Wykonanie zapytania trwało 0.0003 sekund(y)) Dane są w tabeli advisors na milion % |
|
|
![]()
Post
#331
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 13.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Temat ma duzo strony czy ktoś mógłby wymienic wszystkie funkcje które chronia przed sql Injection
|
|
|
![]()
Post
#332
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
W sumie to faktycznie lekki śmietnik tu się zrobił.
Ogólnie to nie ma czegoś takiego jak "funkcja chroniąca przed SQL Injection". Temat jest bardziej złożony. Najprościej jest przerzucić się w końcu na PDO i używać prepared statements - Inne funkcje "chroniące przed SQL Injection" to mysql_real_escape_string, pg_escape_string, itp. Stosuje się je do danych tekstowych i tylko dla odpowiedniego systemu bazodanowego. Jeśli użyjemy funkcji wstawiającej ukośniki przed apostrofami ('O\'Reilly'), a w naszym systemie DB znakiem ucieczki jest drugi apostrof ('O''Reilly'), to nie dość że nie zabezpieczyliśmy się przed niczym, to jeszcze wstawiamy śmieci do bazy danych. - W przypadku danych liczbowych używamy intval, floatval - W przypadku nazw kolumn (np. do sortowania), to stosujemy:
- W przypadku MySQL zamiast popularnego addslashes poleca się używanie mysql_real_escape_string - stripslashes jest praktycznie niepotrzebny. Przydaje się tylko, żeby oczyścić dane wejściowe ze śmieci jeśli mamy włączone magic_quotes_gpc |
|
|
-lukasamd- |
![]()
Post
#333
|
Goście ![]() |
|
|
|
![]()
Post
#334
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
A co sądzicie o metodzie (na SELECT, UPDATE itp)
(IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#335
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Po co? Może wystąpić kolizja, choć to mało prawdopodobne, a poza tym po co dodatkowo obciążać PHP i bazę liczeniem hasha? Wystarczą prepared statements i SQL Injection masz z głowy.
|
|
|
![]()
Post
#336
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czy zastosowanie wyrazen regularnych z funkcja preg_match() do danych pochodzacych z formularza uchroni mnie od SQL Injection? Czy jest to niewystarczające zabezpieczenie?
|
|
|
![]()
Post
#337
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#338
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja na każdym inpucie wprowadziłem preg_match jako głowną formę zabezpieczenia,żeby mi ktoś śmieci nie wpisywał dodatkowo użyłem funkcje, która dodatkowo filtruje, każdą wprowadzoną zmienną poprzez metody stripslashes,htmlentities,strip_tags i pomocniczo trim.Jednakże ,mam wątpliwość co do metody "htmlentities". Użyłem jej w taki sposób
.Wiem ,że funkcja ma konwertować znaki specjalne do kodowani encji.Polskie znaki w tej metodzie ,są także postrzegane jako znaki specjalne,dlatego w metodzie użyłem zamiany encji na UTF-8 ,ale czy to ma sens???Czy np."\" nie zostanie z powrotem sprowadzony do postaci "\" zamiast do "amp&" która jest encją(IMG:style_emoticons/default/questionmark.gif) ? |
|
|
![]()
Post
#339
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
A moje pytanie jest takie:
Czy jest gdzieś zestaw znaktów specialnych, bardzo często używanych w atach przez typu: ../ '--' '<script>' 'onclick' 'char( itd... Myślę, że można zrobić funkcje, która przy każdym odświeżeniu strony będzie sprawdzać $_POST, $_GET, $_SERVER. w momencie, gdy któraś z tablic będzie zawierać słowo, z powyższej listy to damy bana na IP dla klienta. Wiadomo taki ban przed niczym nie zabezpieczy, ale skomplikuje trochę prace hakerowi i wytnie wszystkie boty, które nie zmieniają IP(ów). Chciałbym tylko dostać jeśli ktoś posiada listę zwrotów, która nada się do zbudowania takiej funkcji, a o pomyśle co sądzicie? |
|
|
![]()
Post
#340
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@propage: A teraz wyobraź sobie, że tutaj na forum jest coś takiego. Piszesz sobie ładnie posta, dajesz wyślij i jesteś zbanowany. wtf?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 00:49 |